Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

OutOfMemory Exception!!!

Îåêßíçóå áðü ôï ìÝëïò afnman. Τελευταία δημοσίευση από το μέλος darklynx στις 07-09-2009, 15:28. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  25-08-2009, 15:20 53270

    OutOfMemory Exception!!!

    Καλησπέρα,

    Προσπαθω να δεσμεύσω περιπου 500ΜΒ σε εναν unsigned short πiνακα , αλλα λαμβάνω OutOfMemory Exception.

    Εκεινη την στιγμή η ελευθερη μνημη δειχνει να ειναι περιπου 1 Giga και το application να καταλαμβανει επισης 1Giga οπως φαινεται απο το task Manager των XP

    Eπισης δοκιμασα να φορτωσω με επιτυχια 500ΜΒ σε καινουριο αδειο project.

    Χρησιμοποιω Studio 2005 και .ΝΕΤ  framework 2.0+

    Καποια λογική εξήγηση??

    Ευχαριστώ!

  •  25-08-2009, 17:16 53274 σε απάντηση της 53270

    Απ: OutOfMemory Exception!!!

    Υπάρχει ένα FIX για OutOfMemoryException σε .NET Framework 2.0, αλλά διάβασε πρώτα το άρθρο What does an OutOfMemoryException in .NET (on 32 bit) really mean? μήπως σε βοηθήσει να βελτιώσεις τον κώδικά σου, γιατί λογικά πρέπει ήδη να έχεις το FIX.


    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  28-08-2009, 13:25 53313 σε απάντηση της 53274

    Απ: OutOfMemory Exception!!!

    Ωραια Ευχαριστώ!

     

    Ηθελα να ρωτησω και κατι αλλο.

     Υπάρχει περιπτωση να δεσμεύσω μια ποσοτητα  unmanaged μνήμης και να μην πάρω exception, ενω με την ιδια ποσοτητα σε managed να μου επιστρέψει exception?

    Διαβασα τι συμβαινει γενικά στην GC heap οταν δημιουργώ managed objects,ομως στην περιπτωση που δεσμεύσω unmanaged τι γινεται;

    Χρησιμποιώ C++/CLI

  •  07-09-2009, 15:28 53515 σε απάντηση της 53313

    Απ: OutOfMemory Exception!!!

    2 GB όριο έχεις και στα unmanaged προγράμματα,δεν πρόκειται στην ουσία για περιορισμό του garbage collector αλλά του 32-μπιτου λειτουργικού συστήματος.Αν προσπαθείς να δεσμεύσεις αυτή τη μνήμη για να φορτώσεις ένα αρχείο τότε καλύτερα να κάνεις streaming του αρχείου αυτού.Αν τη χρειάζεσαι ως προσωρινή μνήμη για την επιτέλεση υπολογισμών,τότε καλύτερα να φτιάξεις ένα προσωρινό αρχείο στο δίσκο και να το χρησιμοποιήσεις για το σκοπό αυτό.Θα συνιστούσα μάλιστα μια που γράφεις σε C++/CLI να χρησιμοποιήσεις file mapping ,με το οποίο θα αντιστοιχήσεις το αρχείο με μια περιοχή στη μνήμη.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems